﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SisVenda.Business;
using SisVenda.Data;
using System.Data;
using System.Collections;
using System.Reflection;
using Froggy.Data;
using SisVenda.Web.messageBox;
using SisVenda.Web.Code;

namespace SisVenda.Web.Restrito.Fn
{
    [System.ComponentModel.DataObject(true)]
    public class ManterClienteFn
    {
        [System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select)]
        public DataTable ObterCliente(string tipoConsulta, string parametroPesquisa)
        {
            string parPes = parametroPesquisa;
            parametroPesquisa = "%" + parPes + "%";
            string tipCon = tipoConsulta;
            tipoConsulta = "%" + tipCon + "%";
            string sql = null;

            if (tipoConsulta.Equals("%CPF_CLIENTE%"))
            {
                #region SQL
                sql = @"SELECT p.IdPessoa AS IdCliente, p.Nome as Cliente, p.CPF, p.CNPJ, p.TipoPessoa as Tipo, p.DataNascimento, p.Telefone, p.Celular
	                            FROM Pessoa p  
                                INNER JOIN Cliente c
                                    ON c.Pessoa_IdPessoa = p.IdPessoa
                                WHERE p.CPF LIKE @parametroPesquisa and p.TipoPessoa = 'F'
                                ORDER BY p.Nome";
                #endregion
            }

            if (tipoConsulta.Equals("%CNPJ_CLIENTE%"))
            {
                #region SQL
                sql = @"SELECT p.IdPessoa AS IdCliente, p.Nome as Cliente, p.CPF, p.CNPJ, p.TipoPessoa as Tipo, p.DataNascimento, p.Telefone, p.Celular
	                            FROM Pessoa p 
                                INNER JOIN Cliente c
                                    ON c.Pessoa_IdPessoa = p.IdPessoa            
                                WHERE p.CNPJ LIKE @parametroPesquisa and p.TipoPessoa = 'J'
                                ORDER BY p.Nome";
                #endregion
            }

            if (tipoConsulta.Equals("%NOME_CLIENTE%") || tipoConsulta.Equals("%%"))
            {
                #region SQL
                sql = @"SELECT p.IdPessoa AS IdCliente, p.Nome as Cliente, p.CPF, p.CNPJ, p.TipoPessoa as Tipo, p.DataNascimento, p.Telefone, p.Celular
	                            FROM Pessoa p    
                                INNER JOIN Cliente c
                                    ON c.Pessoa_IdPessoa = p.IdPessoa         
                                WHERE p.Nome LIKE @parametroPesquisa
                                ORDER BY p.Nome";
                #endregion
            }

            DbCommandUtil db = new DbCommandUtil(sql);
            db.AddParameter("@parametroPesquisa", DbType.String, parametroPesquisa);
            return db.GetDataTable();
        }

        public Pessoa ObterObjetoPessoa(int idPessoa)
        {
            PessoaBo pPessoas = new PessoaBo();
            Pessoa pPessoa = new Pessoa();

            pPessoa = pPessoas.Find(pPes => pPes.IdPessoa == idPessoa).First<Pessoa>();
            return pPessoa;
        }
    }
}